package com.itheima.demo;

import com.itheima.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class DemoTest {
    public static void main(String[] args) throws Exception {
        //findAll();
        findById();
    }

    // 查询所有
    public static void findAll() throws Exception {
        // 读取核心配置文件
        InputStream is = Resources.getResourceAsStream("sql.xml");

        //  构造 SqlSessionFactory 对象  实现类的构建者创建
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        //  获取SqlSession对象
        SqlSession session = factory.openSession();
        // 调用statement 对象并执行 namespace+"."+ statement 对象的id
        List<User> list = session.selectList("one.findAll");
        System.out.println(list);

        //提交事务
        session.commit();
        //释放资源
        session.close();
        is.close();
    }

    // 根据id查询学生
    public  static  void findById() throws IOException {
        //读取核心配置文件
        InputStream is = Resources.getResourceAsStream("sql.xml");
        // 构建SqlSessionFactory对象  使用实现类的构建者创建
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);

        // 使用factory获取SqlSession对象
        SqlSession session = factory.openSession();
        // 调用statement 对象并执行 namespace+"."+ statement 对象的id
        User stu = session.selectOne("one.findById", 3);
        System.out.println(stu);
        //事务提交
        session.commit();
        //释放资源
        session.close();
        is.close();

    }

}
